#pragma once
#include "DXAMLCommon.h"
#include "IPALPrintingData.h"
#include "IPALAcceleratedGraphicsFactory.h"
#include "IPALPrintTarget.h"
#include "IPALD2DPrintingData.h"


class IPALPrintingServices
{
public:
	virtual HRESULT CreatePrintingData( IPALPrintingData **ppPrintingData) = 0;
	virtual HRESULT LaunchPrintDialog(const void *, XUINT32 *, IPALPrintingData *) = 0;
	virtual HRESULT StartDocument( IPALPrintingData *pPalPD) = 0;
	virtual HRESULT PrintPage( void *pvBitmap, IPALPrintingData *pPalPD) = 0;
	virtual HRESULT PrintPostscriptPage(char *, XUINT32, IPALPrintingData *) = 0;
	virtual HRESULT EndDocument( IPALPrintingData *pPalPD) = 0;
	virtual HRESULT CreateD2DPrintFactoryAndTarget( IPALAcceleratedGraphicsFactory **ppPrintFactory, IPALPrintTarget **ppPALPrintTarget) = 0;
	virtual HRESULT CreateD2DPrintingData( IPALD2DPrintingData **ppPrintingData) = 0;
};